package com.zpz.framework.zpzoauth.service;


import com.github.pagehelper.PageInfo;
import com.zpz.framework.zpzoauth.common.result.ZpzOauthResultMsg;
import com.zpz.framework.zpzoauth.pojo.qo.*;
import com.zpz.framework.zpzoauth.pojo.vo.GetDepartmentPageVo;

/**
 * @author zhangpanzhi
 * @time 2019-07-09
 * @description 未经本人允许请勿随便改动，尊重劳动
 * */
public interface ZpzOauthFrameDepartmentService {
    /***
     * 获取部门列表
     * @name: ZpzOauthFrameDepartmentService
     * @author: zhangpanzhi
     * @createDate: 2020/10/13 15:40
     * @param getDepartmentPageQo getDepartmentPageQo
     * @return: ZpzOauthResultMsg<com.github.pagehelper.PageInfo < GetDepartmentPageVo>>
     * @throws:
     */
    ZpzOauthResultMsg<PageInfo<GetDepartmentPageVo>> getDepartmentPage(GetDepartmentPageQo getDepartmentPageQo);
    /***
     * 获取部门详情
     * @name: ZpzOauthFrameDepartmentService
     * @author: zhangpanzhi
     * @createDate: 2020/10/13 15:48
     * @param getDepartmentInfoQo
     * @return: ZpzOauthResultMsg<GetDepartmentPageVo>
     * @throws:
     */
    ZpzOauthResultMsg<GetDepartmentPageVo> getDepartmentInfo(GetDepartmentInfoQo getDepartmentInfoQo);
    /***
     * 新增部门
     * @name: ZpzOauthFrameDepartmentService
     * @author: zhangpanzhi
     * @createDate: 2020/10/13 15:49
     * @param addDepartmentQo addDepartmentQo
     * @return: ZpzOauthResultMsg<java.lang.Boolean>
     * @throws:
     */
    ZpzOauthResultMsg<Boolean> addDepartment(AddDepartmentQo addDepartmentQo);
    /***
     * 禁用部门
     * @name: ZpzOauthFrameDepartmentService
     * @author: zhangpanzhi
     * @createDate: 2020/10/13 16:35
     * @param disableDepartmentQo
     * @return: ZpzOauthResultMsg<java.lang.Boolean>
     * @throws:
     */
    ZpzOauthResultMsg<Boolean> disableDepartment(DisableDepartmentQo disableDepartmentQo);
    /***
     * 删除部门
     * @name: ZpzOauthFrameDepartmentService
     * @author: zhangpanzhi
     * @createDate: 2020/10/13 16:36
     * @param removeDepartmentQo
     * @return: ZpzOauthResultMsg<java.lang.Boolean>
     * @throws:
     */
    ZpzOauthResultMsg<Boolean> removeDepartment(RemoveDepartmentQo removeDepartmentQo);


}
